# 1. 运行代码
# 输出如下：
# Title: The Catcher in the Rye, Author: J.D. Salinger, ISBN: 1234567890
# Book is available in stock.

# 2. 指出该代码体现了哪个原则
# 体现了单一职责原则（Single Responsibility Principle, SRP）

# 3. 请说明该代码是如何体现该原则
# 单一职责原则指出，一个类应该只有一个引起它变化的原因。换句话说，一个类应该只有一个职责。
# 在这个例子中：
# - `Book` 类只负责存储书籍的基本信息（标题、作者、ISBN），不再负责显示信息或管理库存。
# - `BookDisplay` 类专门负责显示书籍信息。
# - `InventoryManager` 类专门负责管理库存，包括添加书籍、检查库存和更新库存数量。
# - 这种设计使得每个类的职责非常明确，每个类的变化原因也只有一个，从而提高了代码的可维护性和可扩展性。

# 图书类，负责存储书籍基本信息
class Book:
    def __init__(self, title, author, isbn):
        self.title = title
        self.author = author
        self.isbn = isbn

# 图书显示类，负责显示书籍信息
class BookDisplay:
    def display_book_info(self, book):
        print(f'Title: {book.title}, Author: {book.author}, ISBN: {book.isbn}')

# 库存管理类，负责管理库存
class InventoryManager:
    def __init__(self):
        self.stock = {}

    def add_book(self, book, quantity):
        self.stock[book.isbn] = self.stock.get(book.isbn, 0) + quantity

    def check_availability(self, book):
        return self.stock.get(book.isbn, 0) > 0

    def update_quantity(self, book, amount):
        if book.isbn in self.stock:
            self.stock[book.isbn] += amount
        else:
            self.stock[book.isbn] = amount

# 代码使用示例
if __name__ == "__main__":
    # 创建书籍对象
    book = Book("The Catcher in the Rye", "J.D. Salinger", "1234567890")

    # 创建显示对象
    display = BookDisplay()

    # 创建库存管理对象
    inventory = InventoryManager()

    # 添加书籍到库存
    inventory.add_book(book, 10)

    # 显示书籍信息
    display.display_book_info(book)

    # 检查库存
    if inventory.check_availability(book):
        print("Book is available in stock.")
    else:
        print("Book is out of stock.")